package 案例;

import com.sun.xml.internal.ws.api.model.wsdl.WSDLOutput;

import java.io.*;
import java.lang.reflect.Array;
import java.util.ArrayList;
import java.util.List;
import java.util.Scanner;

//案例1:指定一个目录,扫描这个目录,找到文件名中包含了指定字符的文件
//并提示用户是否要删除这个文件.根据用户的输入决定是否删除
public class Test1 {

    //扫描这个目录
    public static void sanFile(File file, String name, List<File> result) throws IOException {
        File[] files = file.listFiles();//返回这个目录下的所有对象.
        if (files == null || files.length == 0) {
            return;
        }
        for (File f : files) {
            if (f.isDirectory()) {
                //如果是目录文件,则继续递归
                sanFile(f, name, result);
            }
            if (f.isFile()) {
                //如果是普通文件,则看看这个文件名是否包含有关键字
                if (f.getName().contains(name)) {
                    result.add(f);
                }
            }
        }

    }

    public static void main(String[] args) throws IOException {
        Scanner scanner = new Scanner(System.in);
        System.out.println("请输入一个要扫描的根目录(绝对路径):");
        String name = scanner.next();
        //判断是否为目录
        File rootFile = new File(name);
        if (!rootFile.isDirectory()) {
            System.out.println("宁输入的这个路径,并不是目录文件");
            return;
        }
        System.out.println("请输入你想查找的文件名中包含的关键词:");
        String token = scanner.next();
        List<File> files = new ArrayList<>();
        //扫描这个目录
        sanFile(rootFile, token, files);
        System.out.println("符合宁要求的文件有以下这些,根据你的要求可选择进行删除:>");
        for (File f : files) {
            System.out.println(f + "是否删除该文件,是:Y,否:N");
            String input = scanner.next();
//            if (input.equals("Y")) {
                if (input.equalsIgnoreCase("Y")) {
//                File file1 = new File(s);
                    if (f.delete()) {
                        System.out.println("删除成功");
                    } else {
                        System.out.println("删除失败");
                    }

                }

            }

        }

}